
from Blog import *

blog = Blog()

# 第1步，实例化object，建立窗口window
window = tk.Tk()

# 第2步，给窗口的可视化起名字
window.title('My Window')

# 第3步，设定窗口的大小(长 * 宽)
window.geometry('500x500')  # 这里的乘是小x


def thread_it(func, *args):
    '''将函数打包进线程'''
    # 创建
    t = threading.Thread(target=func, args=args)
    # 守护 !!!
    t.setDaemon(True)
    # 启动
    t.start()
    # 阻塞--卡死界面！
    # t.join()


# 第6步，创建一个方法用于添加词汇的点击事件
def add_selection():
    value = e.get()  # 获取当前输入文本
    if value == '':
        return
    list_items.append(value)
    lb.insert('end', value)
    blog.writeWord(list_items)


# 第6步，创建一个方法用于删除词汇的点击事件
def del_selection():
    if len(list_items) == 0:
        return
    value = lb.get(lb.curselection())
    list_items.remove(value)
    lb.delete(lb.curselection())
    blog.writeWord(list_items)


# 第6步，创建一个方法用于按钮的点击事件
def handle_cheat():
    # 开始爬取
    blog.thread_it(blog.cheatCount, list_items)


# 第5步，创建一个按钮并放置，点击按钮调用add_selection函数
b1 = tk.Button(window, text='添加URI', width=15, height=2, command=add_selection)
b1.pack()

# 第5步，创建一个按钮并放置，点击按钮调用add_selection函数
b2 = tk.Button(window, text='删除URI', width=15, height=2, command=del_selection)
b2.pack()

# 第5步，创建一个按钮并放置，点击按钮调用add_selection函数
tk.Button(window, text='开始浏览', command=lambda: thread_it(blog.cheatCount, list_items)).pack()
# b3 = tk.Button(window, text='开始浏览', width=15, height=2, command=handle_cheat)
# b3.pack()

# 第7步，创建Listbox并为其添加内容
var2 = tk.StringVar()
# 创建Listbox
lb = tk.Listbox(window, listvariable=var2,width=65)  # 将var2的值赋给Listbox
# 创建一个list并将值循环添加到Listbox控件中
list_items = blog.readWord()
for item in list_items:
    lb.insert('end', item)  # 从最后一个位置开始加入值
lb.pack()

e = tk.Entry(window, show=None)  # 显示成明文形式
e.pack()

if __name__ == '__main__':
    # 第8步，主窗口循环显示
    window.mainloop()
